/**
 * 优化验证表单数据
 * 1. 安装@hapi/joi包，定义表单中每个数据项的验证规则
 * 2. 安装@escook/express-joi中间件，实现自动对表单数据进行验证的操作
 */
/**
 * string() 值必须是字符串
 * alphanum() 值只能是包含 a-zA-Z0-9 的字符串
 * min(length) 最小长度
 * max(length) 最大长度
 * required() 值是必填项，不能为 undefined
 * pattern(正则表达式) 值必须符合正则表达式的规则
 */
const joi = require('joi')
const id = joi.number().integer().min(1).required()
const username = joi.string().min(1).max(10).required()
const password = joi.string().pattern(/^[\S]{6,12}$/).required()
const new_password = joi.string().pattern(/^[\S]{6,12}$/).required()
const nickname = joi.string().required()
const email = joi.string().email().required()
const avatar = joi.string().dataUri().required()


module.exports = {
    register_or_login: {    // 根据post请求，设置为body
        body: {username, password}
    },
    getUserInfo: {  // 针对get请求，设置为query
        query: {username}
    },
    updateUserInfo: {
        body: {id, username, nickname, email}
    },
    resetPassword: {
        body: {username, new_password}
    },
    updateAvatar: {
        body: {username, avatar}
    }

}
